/**
 * Created by Soul on 2016/8/30.
 */


exports.dt_utls = (function() {
    Date.prototype.format = function(fmt) {
        var o = {
            "M+": this.getMonth() + 1,
            "d+": this.getDate(),
            "h+": this.getHours(),
            "m+": this.getMinutes(),
            "s+": this.getSeconds(),
            "q+": Math.floor((this.getMonth() + 3) / 3),
            "S": this.getMilliseconds()
        };
        if(/(y+)/.test(fmt))
            fmt = fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
        for(var k in o)
            if(new RegExp("("+ k +")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
        return fmt;
    };

    return {
        now: function(){
            return new Date();
        },
        unix_now: function () {
            return Date.now();
        },
        formated_today: function(){
            return new Date().format("yyyy-MM-dd");
        },
        formated_now: function(){
            return new Date().format("yyyy-MM-dd hh:mm:ss");
        },
        time_from_yMd: function(year, month, day) {
            return new Date(year, month, day);
        },
        time_from_yMdhms: function(y, M, d, h, m, s, mils) {
            return new Date(y, M, d, h, m, s, mils);
        },
        time_from_milsecs: function(mils){
            return new Date(mils);
        }
    };
})();

// test code
// console.log(dt_utls.formated_now());